﻿#include "format.h"
#include <QDebug>
#include<qplaintextedit.h>
#include<QUrl>
#include<QDesktopServices>
#include<QLabel>

bool isBold = true;  //初始状态
bool isItalic = true;
bool isUnderline = true;
bool isdelete = true;


//  设置光标的选区，使格式作用于选区内的字符
void myNotePad::mergeFormat(QTextCharFormat fmt)
{
	QTextCursor cursor = mainText->textCursor();
	if (!cursor.hasSelection()) {
		cursor.select(QTextCursor::WordUnderCursor);
	}
	cursor.mergeCharFormat(fmt);
}


void myNotePad::strongActionSlot() {         //加粗实现
	QString selectedText = mainText->textCursor().selectedText();
	if (!selectedText.isEmpty()) {
		QString markdownText = "**" + selectedText + "**";
		// 将选定的文本替换为Markdown格式的文本
		QTextCursor cursor = mainText->textCursor();
		cursor.insertText(markdownText,QTextCharFormat());
		// 在替换文本后清除选定状态
		mainText->setTextCursor(cursor);

	}
}

void myNotePad::emphasisActionSlot() {         //斜体实现
	QString selectedText = mainText->textCursor().selectedText();
	if (!selectedText.isEmpty()) {
		QString markdownText = "*" + selectedText + "*";
		// 将选定的文本替换为Markdown格式的文本
		QTextCursor cursor = mainText->textCursor();
		cursor.insertText(markdownText, QTextCharFormat());
		// 在替换文本后清除选定状态
		mainText->setTextCursor(cursor);

	}
}

void myNotePad::underLineActionSlot() {       //下划线实现
	QString selectedText = mainText->textCursor().selectedText();
	if (!selectedText.isEmpty()) {
		QString markdownText = "<u>" + selectedText + "</u>";
		// 将选定的文本替换为Markdown格式的文本
		QTextCursor cursor = mainText->textCursor();
		cursor.insertText(markdownText, QTextCharFormat());
		// 在替换文本后清除选定状态
		mainText->setTextCursor(cursor);

	}
}

void myNotePad::codeActionSlot() {//代码实现
	QTextCursor cc = mainText->textCursor();
	QString mm = cc.selectedText();

	// 将文字修饰为代码形式
	QString codeBlockText = "   ` " + mm + " `";
	cc.insertText(codeBlockText);
}

void myNotePad::strikeActionSlot() {//删除线实现
	QString selectedText = mainText->textCursor().selectedText();
	if (!selectedText.isEmpty()) {
		QString markdownText = "~~" + selectedText + "~~";
		// 将选定的文本替换为Markdown格式的文本
		QTextCursor cursor = mainText->textCursor();
		cursor.insertText(markdownText, QTextCharFormat());
		// 在替换文本后清除选定状态
		mainText->setTextCursor(cursor);

	}
}
	
void myNotePad::hyperlinkActionSlot() {//超链接实现

}

void myNotePad::clearFormatActionSlot() {//清除样式实现

	QString selectedText = mainText->textCursor().selectedText();
	if (!selectedText.isEmpty()) {
		// 将选定的文本替换为Markdown格式的文本
		QTextCursor cursor = mainText->textCursor();
		cursor.insertMarkdown(selectedText);
		
		// 在替换文本后清除选定状态
		mainText->setTextCursor(cursor);

	}

}